from django.http import JsonResponse
from rest_framework.generics import ListAPIView, ListCreateAPIView
from rest_framework.response import Response

from meiduo_admin.serializer.users import UserSerializer, UserAddSerializer
from meiduo_admin.utils import UserPageNum
from users.models import User

# 获取用户和增加用户
class UserView(ListCreateAPIView):
    # ----------获取查询用户---------------
    # 继承来自genericAPIview，ListModelMixin
    # 指定查询集
    # queryset= User.objects.filter(is_staff=False)
    # # 指定序列化器
    # serializer_class =UserSerialzier
    # # 指定分页器
    # pagination_class =  UserPageNum

    # # 重写get_queryset方法根据不同的查询值返回不同的用户数据
    # def get_queryset(self):
    #     # 用rest_framwork视图的----query_params获取字符串内容并获取
    #     keyword = self.request.query_params.get('keyword')  # self.request指定用户请求
    #     # 校验----如为空，返回所有
    #     if keyword is '':
    #         return User.objects.filter(is_staff=False)
    #     else:
    #         # 反之 具体
    #         return User.objects.filter(username=keyword)
    #


    # ----------------增加用户-------------
    pagination_class = UserPageNum

    def get_serializer_class(self):

        if self.request.method == 'GET':
            return UserSerializer
        else:
            return UserAddSerializer

    # 重写get_queryset方法根据不同的查询值返回不同的用户数据
    def get_queryset(self):
        # 用rest_framwork视图的----query_params获取字符串内容并获取
        keyword = self.request.query_params.get('keyword')#self.request指定用户请求
        # 校验----如为空，返回所有
        if keyword is '':
            return User.objects.filter(is_staff=False)
        else:
            # 反之 具体
            return User.objects.filter(username=keyword)


